package com.tjn.thread;

/**
 * @author 陶镓妮
 * @version 1.0
 */
public class Thread01 {
    public static void main(String[] args) throws InterruptedException {
        Cat cat = new Cat();
        cat.start();//使用start方法，底层会调用start0方法，start0方法是核心
        //不能调用run方法，因为run方法是普通方法，调用run方法就是普通方法的调用，不会启动线程

        //现在写了一个主线程的方法，并且还调用了子线程方法，运行发现，两个线程的输出结果是交替执行的，
        //所以可知当main线程启动一个子线程时，主线程不会等子线程执行完再继续执行，主线程会继续执行，不会堵塞
        System.out.println("主线程继续执行" + Thread.currentThread().getName());//main
        for (int i = 0; i < 30; i++) {
            System.out.println("主线程在执行中" + i);
            Thread.sleep(1000);
        }
    }
}

class Cat extends Thread{
    @Override
    public void run() {
        int count = 0;
        while (true){
            System.out.println("喵喵喵。。。" + (++count) + " 线程名：" + Thread.currentThread().getName());//Thread-0

            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
            if(count == 60){
                break;
            }
        }
    }
}